package com.xd.study.activity;

import android.app.Activity;
import android.content.Intent;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

import com.xd.study.R;

/**
 * Created by DGF on 2015/4/30. *
 */
public class DataStorageActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.datastorage);

        /**
         * SharedPreferences
         * 是一种轻型的数据存储方式
         * 本质是基于XML文件存储key-value键值对数据
         * 通常用来存储一些简单的配置信息
         */
        Button btnSharedPreferences = (Button)this.findViewById(R.id.data_btn_sharedpreferences);
        btnSharedPreferences.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                /**
                 * 获取默认的SharedPreferences
                 */
//                SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(DataStorageActivity.this);
                /**
                 * MODE_PRIVATE :仅当前程序可以访问
                 */
//                SharedPreferences sharedPreferences = getSharedPreferences("MySharedPref", MODE_PRIVATE);
//                SharedPreferences.Editor editor = sharedPreferences.edit();
//
//                Toast.makeText(DataStorageActivity.this, "开始存入数据", Toast.LENGTH_SHORT).show();
//                editor.putString("name", "ming");
//                editor.putInt("age", 18);
//                editor.putBoolean("default", true);
//                editor.putString("sex","man");
//                editor.putLong("time", System.currentTimeMillis());
//                editor.commit();
//                editor.remove("default");
//                editor.commit();
//                Toast.makeText(DataStorageActivity.this, "获取数据 name = "+sharedPreferences.getString("name", null), Toast.LENGTH_SHORT).show();

                Intent intent = new Intent(DataStorageActivity.this, SharedPreferencesActivity.class);
                DataStorageActivity.this.startActivity(intent);
            }
        });

        /**
         * Sqlite
         * 轻量级数据库，支持高达2TB大小的数据库；
         * 资源占用少，性能良好和零管理成本；
         * 支持NULL、INTEGER、REAL、TEXT、BLOB数据类型；
         * 没有可用于Sqlite的网络服务器，只能通过网络共享，可能存在文件锁定或者性能问题；
         * 只提供数据库级的锁定；
         * 没有用户账户概念，根据文件系统确定所有数据库的权限。
         */
        Button btnSqlite = (Button)this.findViewById(R.id.data_btn_sqlite);
        btnSqlite.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                Intent intent = new Intent(DataStorageActivity.this, SqliteActivity.class);
                DataStorageActivity.this.startActivity(intent);
            }
        });

        /**
         * File
         * Sqlite和SharedPreferences都存储在data目录下，若手动清除数据，会导致数据丢失；
         * 因此对于较大的数据，重要数据需要以文件的形式存储在存储卡中；
         */
        Button btnFile = (Button)this.findViewById(R.id.data_btn_file);
        btnFile.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                Intent intent = new Intent(DataStorageActivity.this, FileActivity.class);
                DataStorageActivity.this.startActivity(intent);
            }
        });
    }
}
